// pages/common/components/goods/goods.js
const app = getApp();
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    // scroll-view的高度
    scrollViewHeight: 0,
    // 页面总高度将会放在这里
    windowHeight: 0,
    //页面宽度
    screenWidth: 0,

    tabs: [],                             //tabs的title
    types: ['kc', 'yz', 'tb', 'fl'],      //title对应的类型
    activeTab: 0,                         //当前显示的页面的index

    goods:null,
    isShowDialog: false, //是否显示选择商品对话框
    dialogType: "",       //对话框类型： buy购买，add添加购物车
    goodsList: []         //商品列表
  },
  lifetimes: {
    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    attached: function() {
      
      //初始化tabs，tabs对应的类型为types
      const titles = ["烤串", "油炸", "铁板", "辅料"]     
      const tabs = titles.map(item => ({ title: item }))
      this.setData({ tabs:tabs })

      this.getListHeight()

      //商品列表组件加载，获取商品列表
      this.queryList();
  
    },
    moved: function() {
      console.log('goods', "moved");
    },
    detached: function() {
      console.log('goods', "detached");
    },
  },

  /**
   * 组件的方法列表
   */
  methods: {
     queryList(){
       let _this =this;
       var header = app.globalData.header; //获取app.js中的请求头
       console.log("type====="+_this.data.types[_this.data.activeTab]);
       wx.request({
         url: app.globalData.ipPort +'/front/goods/query',
         method: 'get',
         header:header,
         data: {
           type: _this.data.types[_this.data.activeTab]     //当前显示的视图的索引，对应类型的下标
        },
        success(res) {
          if (res.data.code == 200) {
            var data = res.data.data
            // for (var i = 0; i < data.length; ++i) {
            //   data[i].imgBase64 = data[i].imgBase64.replace(/[\r\n]/g, "");
            // }
            _this.setData({
              goodsList: res.data.data
            })
          } else {
            wx.showToast({
              title: res.data.msg,
              icon: "none"
            })
          }
        },
        fail(res) {
          wx.showToast({
            title: res.msg,
            icon: "none"
          })
        }
      })
    },
    //tab的点击事件
    onTabCLick(e) {
      const index = e.detail.index;
      this.setData({ activeTab: index });
      this.queryList();
    },
    //tab对应的视图的切换事件
    onChange(e) {
      const index = e.detail.index;
      this.setData({ activeTab: index });
      this.queryList();
    },
    /**
     * 立即购买
     */
    buy_new: function(event) {
      console.log("***", event.currentTarget.dataset.item);
        this.setData({
          isShowDialog: true,
          dialogType: "buy",
          goods:event.currentTarget.dataset.item
        })
      console.log("goods==="+ this.data.goods);
    },
    /**
     * 添加购物车
     */
    add_cart: function(event) {
      console.log("***", event.currentTarget.dataset.item),
        this.setData({
          isShowDialog: true,
          dialogType: "add",
          goods: event.currentTarget.dataset.item
        })
      console.log("购物车==="+ this.data.goods.id);
    },
    /**
     * 商品数量对话框取消按钮事件监听
     */
    _cancelEvent(e) {
      console.log('你点击了取消:');
      console.log(e);
      //do something when cancle is clicked
      this.setData({
        isShowDialog: false,
        goods: null
      })
    },
    /**
     * 商品数量对话框确定按钮事件监听
     */
    _confirmEvent(e) {
      console.log('你点击了确定:');
      var _this = this;
      this.setData({
        isShowDialog: false
      })
      var detail = e.detail;    //对话框的类型和商品的数量，add 添加到购物车，buy 立即购买：{num: 1, dialogType: "buy"}

      var num = detail.num; //商品的数量
      //根据对话框的类型，判断是立即购买/添加购物车
      if (detail.dialogType === "buy") { //立即购买
        
        var goodStr = JSON.stringify(this.data.goods); //购买的商品
        wx.navigateTo({
          url: "/pages/common/pages/buynow/buynow?goods=" + goodStr + "&&num=" + num,

        })
        _this.setData({
          goods: null,
        })
      } else if (detail.dialogType === "add") { //添加购物车
        wx.request({
          url: app.globalData.ipPort +'/front/shoppingcar/add',
          method: 'post',
          header: {
            'Cookie': app.globalData.header.Cookie,
            'Content-Type': 'application/x-www-form-urlencoded'
          },
          data: {
            goodsId: _this.data.goods.id,
            buyCount: num
          },
          success(res) {
            if (res.data.code == 200) {
              wx.showToast({
                title: "已加入购物车",
                icon: "none"
              })
              _this.setData({
                goods: null,
              })
            } else {
              _this.setData({
                goods: null,
              })
              wx.showToast({
                title: res.data.msg,
                icon: "none"
              })
            }
          }, fail(res) {
            _this.setData({
              goods: null,
            })
            wx.showToast({
              title: res.msg,
              icon: "none"
            })
          }
        })
      }


    },
    /**
     * 获取商品列表的高度
     */
    getListHeight(){
      // 先取出页面高度 windowHeight
      let _this = this;
      wx.getSystemInfo({
        success: function (res) {
          _this.setData({
            windowHeight: res.windowHeight,
            screenWidth: res.windowWidth
          });

          //计算底部toolbar的高度(toolbar 的高度是125rpx)
          let toolbarHight = _this.data.screenWidth / 750 * 120;

          let tabsHeight = _this.data.screenWidth / 750 * 70

          // 然后就是做个减法
          let scrollViewHeight = _this.data.windowHeight - toolbarHight - tabsHeight;

          // 算出来之后存到data对象里面
          _this.setData({
            scrollViewHeight: scrollViewHeight,
          });
        }
      });

      
      // var query = wx.createSelectorQuery().in(this);;
      
      // var that = this;
      // query.select('.weui-tabs-bar__content').boundingClientRect().exec(
      //   function (res) {
      //     console.log("height:" + res[0].height);
      //     let tabsTitleHeight = res[0].height;
      //     //计算底部toolbar的高度(toolbar 的高度是125rpx)
      //     let toolbarHight = _this.data.screenWidth / 750 * 125;

      //     // 然后就是做个减法
      //     let scrollViewHeight = _this.data.windowHeight - tabsTitleHeight - toolbarHight;

      //     // 算出来之后存到data对象里面
      //     _this.setData({
      //       scrollViewHeight: scrollViewHeight,
      //       swiperHeight: scrollViewHeight
      //     });
      //   }
      // );
    
    }

  }
})